const sequelize = require("./db");
const { DataTypes } = require('sequelize');

const Students = sequelize.define("Students",{
    name:{
        type:DataTypes.STRING,
        allowNull:false,
        comment:"姓名"
    },
    age:{
        type:DataTypes.VIRTUAL,  // 虚拟字段，不存储在数据库中,但是会存在返回的数据中,需要在返回的字段中加入该字段才会显示
        allowNull:false,
        comment:"年龄",
        //访问器 --> 计算属性
        get(){
            if(!this.birthday) return undefined
            return new Date().getFullYear() - this.birthday.getFullYear()
        }
    },
    birthday:{
        type:DataTypes.DATE,
        allowNull:false,
        comment:"出生日期",
        get(){  //访问器 --> 将数据库存储的日期转换为时间戳
            const birthday = this.getDataValue("birthday")
            if(!birthday) return undefined
            return new Date().setTime(birthday.getTime() + 3600*1000*24)
        }
    },
    sex:{
        type:DataTypes.BOOLEAN,
        allowNull:false,
        comment:"性别"
    },
    mobile:{
        type:DataTypes.STRING(11),
        allowNull:false,
        comment:"联系电话"
    }
},{
    freezeTableName:true,  // 表名是否冻结，默认false，会自动添加s
    timestamps:false,  // 不自动添加时间戳,包括创建时间和更新时间
    paranoid:true,  // 软删除，默认false，不开启软删除
})


module.exports = Students